package com.gxa.modules.app.hospitalization.rechargeAndExpenses.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.gxa.modules.app.outpatient.onlinepay.dto.PayDetail;
import com.gxa.modules.model.dto.*;
import com.gxa.modules.model.entity.fee.InpatientDetail;
import com.gxa.modules.model.entity.fee.RechargeOrderDetail;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 住院信息表 服务类
 * </p>
 *
 * @author lst
 * @since 2022-11-13
 */
public interface InpatientDetailAppService extends IService<InpatientDetail> {

    //根据登陆用户的id查询所有的住院人信息
    List<InpatientDto> listAll(Integer userId);

    //按患者的id和登陆用户id查询住院信息和就诊信息
    InpatientDetailDto queryById(Integer patientId, Integer useId);

    //根据患者id和时间段查询充值订单信息表
    List<PayDetail> queryByTime(Date startTime, Date endTime, Integer id);

    //根据患者的id查询就诊卡的金额
    CardDto queryByPatientIdToCard(Integer id);

    //按时间查询住院记录
    List<HospitalizationDto> queryByTimeToHospitalization(Date startTime, Date endTime, Integer id);

    //根据住院缴费记录id查询对应患者的身份证信息
    IdCardDto queryByIdToMsg(Integer id);

    //根据患者Id和消费记录单的Id查询这次住院记录总的药费
    FreeAndDateDto queryByTimeToMoney (Integer patientId, Integer id);

    //新增住院人
    String add(Integer id);

    //充值并生成订单
    String pay(double money,Integer id,Integer userId,String pwd);
}
